The present invention relates to computer systems. More specifically, the invention relates to a method for generating a data block trace (representing a sequence in which data blocks are loaded from a storage device to memory) that can be transmitted across platforms.
The speed at which data blocks are loaded into memory from a storage device (e.g., a hard disk, CD or DVD) may depend upon how those blocks are distributed on the device and the sequence with which they are accessed. By optimizing those blocks"" arrangement for a given access sequence, improved overall access time for a sequence of disk accesses may be achieved. Such an intelligent reordering may be realized by (1) tracing the sequence of data block accesses to determine the current data block allocation, then (2) optimizing data block allocation, using the trace results, to improve access time. Processes for performing such data block reallocation are described in U.S. Pat. Nos. 5,787,296; 5,802,593; 5,890,205; and 5,920,896xe2x80x94each assigned to this application""s assignee.
In the processes that these patents describe, the tracer for tracing disk accesses comprises programming instructions that are stored on a computer system""s disk drive. As mentioned in U.S. Pat. No. 5,845,297, also assigned to this application""s assignee, the tracer may trace logical file accesses, and then map them to physical disk block accesses. Alternatively, the tracer may trace the physical block accesses directly. The tracer may be part of a standalone utility, or part of an installation utility integrated into an application. Alternatively, the tracer may be integrated with the operating system.
When both the tracer and the data block reallocator are installed on the same platform, the process by which they trace and reorder data block accesses for an application may be relatively complicated for a user. Removing the tracing burden from such a process could simplify that operation for the user. This may be accomplished by performing the tracing operation for the application of interest separately from performing the data block reordering operation. Such a trace, which represents disk access sequence information, may be provided to an unlimited number of computer systems. Those systems may use that trace to optimize the data block allocation for the application, as executed on them.
Transporting accurate disk access sequence information from one system to another is not, however, a straightforward task. Such a trace may consist of a sequence of low level physical data blocks, e.g., a record of low level physical hard drive transactions. Although a physical trace may be more accurate than a logical trace, it is system and state dependent. Such a trace may become invalid, even on the system from which it was made, if moving data on the hard drive (resulting from hard drive use) negates the trace""s accuracy.
Such a trace may instead consist of a logical file system trace. Such a trace records hard drive traffic, as reported by the computer""s operating system. While this type of trace is more portable than a physical trace, it may not be as accurate as a physical trace because it is captured at a relatively high level in the operating system""s driver stack. For that reason, a logical file system trace may not accurately reflect physical hard drive transactions.
Accordingly, there is a need for an apparatus and method that enables a physical level data block trace to be transported across multiple systems and configurations. There is a need for such an apparatus and method that enables transmission of such a physical trace by abstracting it into a device independent format. The present invention provides such an apparatus and method.